﻿/*********************************************************************
 * Nombre: CargaPagina.cs
 * Descripción: Clase encargada de obtener el html de la página 
 * solicitada.
 * Autor: DRD
 * Modificaciones:
 * ******************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;

namespace BXPI
{

    class CargaPagina
    {   
        //Atributo privado donde se guardará la dirección
        private string direccion;

        /*********************************************************************
         * Nombre: ValidaPagina
         * Descripción: Comprueba si la entrada está vacia y si no lo está
         *              comprueba si se le ha añadido delante http:// y se lo
         *              añade en caso negativo.
         * Entrada: String cadena: Valor introducido en el campo de dirección
         * Salida: Booleano: TRUE si la cadena introducida no está vacia.
         * Autor: DRD - 10/04/2009
         * Modificaciones:
         * ******************************************************************/
        public bool ValidaPagina(string cadena) {
            this.direccion = cadena;
            if ((!direccion.StartsWith("http://")) && (!direccion.StartsWith("https://"))){
                this.direccion = "http://" + cadena;
            }
            if (direccion.Equals("http://")){
                return false;
            }
            else{
                return true;
            }
            
        }

        /*********************************************************************
         * Nombre: Conecta
         * Descripción: Conecta a la página almacenada en direccion.
         * Entrada: 
         * Salida: String: Código de la página o mensaje de error de conexión
         * Autor: DRD - 10/04/2009
         * Modificaciones:
         * ******************************************************************/
        public string Conecta()
        {
            string peticion = this.direccion;
            WebClient client =
            new WebClient();
            try
            {
                Stream data = client.OpenRead(peticion);
                StreamReader reader = new StreamReader(data);
                string s = reader.ReadToEnd();
                data.Close();
                reader.Close();
                return s;

            }
            catch
            {
                string s = "Error abriendo la página " + peticion;
                return s;

            }     
        }
    }
}
